package com.zeratul.satoken.demo.controller;

import cn.dev33.satoken.annotation.SaCheckPermission;
import cn.dev33.satoken.stp.StpUtil;
import com.zeratul.common.satoken.utils.LoginHelper;
import com.zeratul.satoken.demo.domain.SysUserAdapter;
import lombok.extern.slf4j.Slf4j;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

@RestController
@RequestMapping("/api/token")
@Slf4j
public class TokenController {

    @PostMapping("/login")
    public String login(String username, String password) {
        //进行登录
        LoginHelper.login(new SysUserAdapter(10010L));

//        SaTokenInfo tokenInfo = StpUtil.getTokenInfo();
        System.out.println("Token有效期：" + StpUtil.getTokenTimeout());

        return LoginHelper.getToken();
    }


    /**
     * 验证接口
     */
    @GetMapping("/check")
    public String check(){
        System.out.println("登录了：" + LoginHelper.isLogin());
        System.out.println("获取用户信息!" + LoginHelper.getLoginUser());
        return "资源获取成功！";
    }

    /**
     * 新增权限接口
     */
    @SaCheckPermission("user:add")
    @GetMapping("/v1/add")
    public String add() {
        return "ADD资源获取成功！";
    }

    /**
     * 修改权限接口
     */
    @SaCheckPermission("user:update")
    @GetMapping("/v1/update")
    public String update() {
        return "UPDATE资源获取成功！";
    }

    /**
     * 删除权限接口
     */
    @SaCheckPermission("user:delete")
    @GetMapping("/v1/delete")
    public String delete() {
        return "DELETE资源获取成功！";
    }

    /**
     * 查询权限接口
     */
    @SaCheckPermission("user:query")
    @GetMapping("/v1/query")
    public String query() {
        return "QUERY资源获取成功！";
    }
}
